#ifndef _PLAYER_H
#define _PLAYER_H

#include "Entity.h"

class NetworkController;
class PlayerController;

class Player : public Entity
{
public:
	friend class PlayerController;

	//Player(short reference);
	Player(short reference, Mesh* _Mesh, bool controlled);
	virtual ~Player();

	virtual void SerializeToBuffer(char *dest)
	{
		m_data.Copy(dest);
		//Convert data to host format after copying
	}
	virtual void SerializeFromBuffer(char *source)
	{
		//Convert data to network format before copying
		m_data.Set(source);
		//Convert back to host format
	}
	virtual int GetSize()
	{
		return m_data.GetSize();
	}

	virtual void ToTick(long tick);

	void Shoot(){}

	virtual void Update(float deltaT);

	//Player Specific members:
	bool m_ignoreController;
	bool m_Alive;
	
	NetworkController *m_controller;
	PlayerController *m_pController;
};

#endif